package cn.limc.ohoscharts.demo.slice;

import cn.limc.ohoscharts.demo.common.BaseAbility;
import cn.limc.ohoscharts.demo.ResourceTable;
import cn.limc.ohoscharts.axis.Axis;
import cn.limc.ohoscharts.entity.DateValueEntity;
import cn.limc.ohoscharts.entity.IStickEntity;
import cn.limc.ohoscharts.entity.LineEntity;
import cn.limc.ohoscharts.entity.ListChartData;
import cn.limc.ohoscharts.event.IZoomable;
import cn.limc.ohoscharts.view.BOLLMASlipCandleStickChart;
import ohos.aafwk.content.Intent;
import ohos.agp.colors.RgbColor;
import ohos.agp.components.element.ShapeElement;
import ohos.agp.utils.Color;

import java.util.ArrayList;
import java.util.List;

public class BOLLMASlipCandleStickChartAbility extends BaseAbility {

  BOLLMASlipCandleStickChart bollmaslipcandlestickchart;

  @Override
  protected void onStart(Intent intent) {
    super.onStart(intent);
    super.setUIContent(ResourceTable.Layout_ability_bollmaslip_candle_stick_chart);
    initBOLLMASlipCandleStickChart();
  }


  //    @Override
  //    public boolean onCreateOptionsMenu(Menu menu) {
  //        // Inflate the menu; this adds items to the action bar if it is present.
  //        getMenuInflater().inflate(R.menu.bollmaslip_candle_stick_chart, menu);
  //        return true;
  //    }
  // 0x FF 2172db

  private void initBOLLMASlipCandleStickChart() {
    this.bollmaslipcandlestickchart =
            (BOLLMASlipCandleStickChart) findComponentById(ResourceTable.Id_bollmaslipcandlestickchart);
    List<LineEntity<DateValueEntity>> lines = new ArrayList<LineEntity<DateValueEntity>>();

    // 计算5日均线
    LineEntity<DateValueEntity> MA5 = new LineEntity<DateValueEntity>();
    MA5.setTitle("MA5");
    MA5.setLineColor(Color.WHITE.getValue());
    MA5.setLineData(initMA(5));
    lines.add(MA5);

    // 计算10日均线
    LineEntity<DateValueEntity> MA10 = new LineEntity<DateValueEntity>();
    MA10.setTitle("MA10");
    MA10.setLineColor(Color.RED.getValue());
    MA10.setLineData(initMA(10));
    lines.add(MA10);

    // 计算25日均线
    LineEntity<DateValueEntity> MA25 = new LineEntity<DateValueEntity>();
    MA25.setTitle("MA25");
    MA25.setLineColor(Color.GREEN.getValue());
    MA25.setLineData(initMA(25));
    lines.add(MA25);

    List<LineEntity<DateValueEntity>> band = new ArrayList<LineEntity<DateValueEntity>>();
    LineEntity<DateValueEntity> LOWER = new LineEntity<DateValueEntity>();
    LOWER.setTitle("LOWER");
    LOWER.setLineColor(Color.YELLOW.getValue());
    LOWER.setLineData(dv1);
    band.add(LOWER);

    LineEntity<DateValueEntity> UPPER = new LineEntity<DateValueEntity>();
    UPPER.setTitle("UPPER");
    UPPER.setLineColor(Color.CYAN.getValue());
    UPPER.setLineData(dv2);
    band.add(UPPER);

    bollmaslipcandlestickchart.setAxisXColor(Color.LTGRAY.getValue());
    bollmaslipcandlestickchart.setAxisYColor(Color.LTGRAY.getValue());
    bollmaslipcandlestickchart.setLatitudeColor(Color.GRAY.getValue());
    bollmaslipcandlestickchart.setLongitudeColor(Color.GRAY.getValue());
    bollmaslipcandlestickchart.setBorderColor(Color.LTGRAY.getValue());
    bollmaslipcandlestickchart.setLongitudeFontColor(Color.WHITE.getValue());
    bollmaslipcandlestickchart.setLatitudeFontColor(Color.WHITE.getValue());

    // 最大纬线数
    bollmaslipcandlestickchart.setLatitudeNum(5);
    // 最大经线数
    bollmaslipcandlestickchart.setLongitudeNum(3);
    // 最大价格
    bollmaslipcandlestickchart.setMaxValue(1200);
    // 最小价格
    bollmaslipcandlestickchart.setMinValue(200);

    bollmaslipcandlestickchart.setDisplayFrom(10);

    bollmaslipcandlestickchart.setDisplayNumber(30);

    bollmaslipcandlestickchart.setMinDisplayNumber(5);

    bollmaslipcandlestickchart
            .setZoomBaseLine(IZoomable.ZOOM_BASE_LINE_CENTER);

    bollmaslipcandlestickchart.setDisplayLongitudeTitle(true);
    bollmaslipcandlestickchart.setDisplayLatitudeTitle(true);
    bollmaslipcandlestickchart.setDisplayLatitude(true);
    bollmaslipcandlestickchart.setDisplayLongitude(true);
    ShapeElement background = new ShapeElement();
    background.setRgbColor(new RgbColor(00, 00, 00));
    bollmaslipcandlestickchart.setBackground(background);

    bollmaslipcandlestickchart.setDataQuadrantPaddingTop(5);
    bollmaslipcandlestickchart.setDataQuadrantPaddingBottom(5);
    bollmaslipcandlestickchart.setDataQuadrantPaddingLeft(5);
    bollmaslipcandlestickchart.setDataQuadrantPaddingRight(5);
//      bollmaslipcandlestickchart.setAxisYTitleQuadrantWidth(50);
//      bollmaslipcandlestickchart.setAxisXTitleQuadrantHeight(20);
    bollmaslipcandlestickchart
            .setAxisXPosition(Axis.AXIS_X_POSITION_BOTTOM);
    bollmaslipcandlestickchart
            .setAxisYPosition(Axis.AXIS_Y_POSITION_RIGHT);

    // 为chart2增加均线
    bollmaslipcandlestickchart.setLinesData(lines);
    bollmaslipcandlestickchart.setBandData(band);

    // 为chart2增加均线
    bollmaslipcandlestickchart
            .setStickData(new ListChartData<IStickEntity>(ohlc));
  }

}
